#! /usr/bin/python

import math

def binomial(n, k):
    p = 1
    t = n-k
    for i in range(1, k+1):
        p = p*(t+i)//i
    return p

triangle =set([1, 2, 3, 4, 5, 6, 7, 10, 15, 20, 21,35])

for n in range(8, 51):
    for k in range(1, n/2 + 1):
	triangle.add(binomial(n, k))

print max(triangle)

def isPrime(n):
    if n ==2 or n==3 or n==5 or n==7: return True
    if n%2 == 0 or n%3 == 0 or n==1: return False
    for i in range(5, int(math.sqrt(n) + 1), 6):
	if n%i == 0 or n%(i+2) == 0: return False
    return True

primes = [4]
for i in range(3, 200, 2):
    if isPrime(i): primes.append(i**2)

print primes

def squareFree(n):
    for p in primes:
	if n%p == 0: return False
    return True

ss = 0
for t in triangle:
    if squareFree(t): 
	ss += t
	#print t

print ss, sum(triangle)
    
    
